<?php
/*

*/
//ob_start("ob_gzhandler");
require_once 'php/header.php';
require_once 'php/template.php';

// Page demandee
$page = (isset($_GET['page'])) ? $_GET['page'] : 'index';
if(!isset($CONF['template'][$page]))
{
  $page = 'index';
}

// on créer une nouvelle instance de la classe Template
// on indique en argument le chemin vers les modèles
$template = new Template($CONF['theme_dir'].'/template/');

/* La liste des utilisateurs pour les droits lors de l'ajout d'un item */
$sql = SQL::GetInstance();
$users = $sql->getUtilisateurs('all');
$i = 0;
$res = array(
	     'utilisateurNoneUpload'         => array(),
	     'utilisateurLectureUpload'      => array(),
	     'utilisateurModificationUpload' => array()
	     );
foreach($users as $u)
{
  if ($u == $_SESSION['LOGIN'])
    $res['utilisateurModificationUpload.'][$i++]['LOGIN'] = $u;
  else
    $res['utilisateurNoneUpload.'][$i++]['LOGIN'] = $u;
}
foreach($res as $k=>$v)
{
  foreach($v as $vv)
    {
      $template->assign_block_vars(str_replace('.','',$k),$vv);
    }
}

/* Les plugins */
$PLUGIN_OK = true;
if($PLUGIN_OK)
  {
    $PLUGINS = array();
    $dir_plugin = scandir('./plugin');
    foreach($dir_plugin as $plugin) {
      if (is_dir('./plugin/'.$plugin) && !ereg('^\.',$plugin) && !file_exists('./plugin/'.$plugin.'/lock')) {
	$nomT = explode('/', $plugin);
	$nom  = $nomT[count($nomT) - 1];
	include_once('./plugin/'.$nom.'/'.$nom.'.php');
	$lePlugin = new $nom($template);
	foreach($lePlugin->getScope() as $unScope){
	  $PLUGINS[$unScope][$nom] = $lePlugin;
	  //if($unScope == 'template') $E = $lePlugin->action();
	  //--- if(DEBUG && eregi('err',$E)) die($E);
	}
      }
    }
  }

// modèle de template à utiliser
$template->set_filenames(array('leTemplate' => $CONF['template'][$page]['page']));

// si c'est du XML
if(isset($CONF['template'][$page]['xml']) && $CONF['template'][$page]['xml'] === true)
{
  header("Content-Type: text/xml");
}

// type/mime
if(isset($CONF['template'][$page]['mime']))
{
  header("Content-Type: ".$CONF['template'][$page]['mime']);
}


// Fichier de remplissage du template
if(isset($CONF['requires'][$page]))
  {
    foreach($CONF['requires'][$page] as $requis)
      {
	if(!file_exists($requis))
	  {
	    echo "\nERREUR FATALE : fichier \"$requis\" manquant.\n"; exit(1);
	  }
	require_once $requis;
      }
  }

require_once 'php/footer.php';
require 'php/template/plugins.php';

// Redirection page précedente si demandé et si tout s'est bien passé
$ok = (isset($ok)) ? $ok : false;
if($ok === true 
   && isset($CONF['template'][$page]['back']) 
   && $CONF['template'][$page]['back']
   && !is_null($referer))
  {
    $sep = (ereg('\?', $referer)) ? '&' : '?';
    // On redirige en laissant une marque pour le montrer
    $location = str_replace('PLUGIN','void',$referer.$sep.'redir=ok&'.$CONF['template'][$page]['back']);
    header('Location: '.$location);
  }

// Affichage des données
$temps_a_aff = round((getMicrotime() - $temps_generation_deb), 3);
$template->pparse('leTemplate');
$temps_a_aff .= ' (total:'.round((getMicrotime() - $temps_generation_deb), 3).') [beta]';
if($page == 'index')
  {
    echo 
'
    <script type="text/javascript">
        $("temps_generation").innerHTML = "'.$temps_a_aff.'";
    </script>    
</html>
';
  }

?>
